Routes কী এবং কীভাবে কাজ করে

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter Routing |

Routes হলো CodeIgniter-এর একটি গুরুত্বপূর্ণ ফিচার, যা URL এবং কন্ট্রোলারের মেথড-এর মধ্যে সম্পর্ক স্থাপন করে। এটি ব্যবহারকারীর রিকোয়েস্ট অনুযায়ী নির্দিষ্ট কন্ট্রোলার এবং মেথড লোড করার জন্য ব্যবহৃত হয়। Routes কনফিগার করার মাধ্যমে আপনি ডিফল্ট রাউট, কাস্টম URL, এবং ডাইনামিক রাউট তৈরি করতে পারেন।


Routes কোথায় সংরক্ষিত?

CodeIgniter এ Routes কনফিগারেশন ফাইলটি app/Config/Routes.php ডিরেক্টরিতে অবস্থিত। এই ফাইলেই সমস্ত রাউট ডিফাইন করা হয়।


Routes কীভাবে কাজ করে?

  1. যখন ব্যবহারকারী ব্রাউজারে একটি URL টাইপ করে, তখন CodeIgniter সেই URL অনুযায়ী Routes.php ফাইলে রাউট খুঁজে।
  2. রাউট যদি মেলে, তাহলে নির্দিষ্ট কন্ট্রোলার এবং মেথড লোড হয়।
  3. যদি কোনো রাউট না মেলে, তাহলে 404 Page Not Found ত্রুটি দেখায়।

Routes এর ধরন

১. ডিফল্ট রাউট

CodeIgniter এর ডিফল্ট রাউট নির্ধারণ করা হয় Routes.php ফাইলে।

ডিফল্ট রাউট উদাহরণ:

$routes->setDefaultController('Home'); // Home কন্ট্রোলার ডিফল্ট
$routes->setDefaultMethod('index');   // index() মেথড ডিফল্ট

ব্রাউজারে অ্যাক্সেস:

http://localhost/your_project/

২. কাস্টম রাউট

আপনার নির্দিষ্ট URL-কে একটি নির্দিষ্ট কন্ট্রোলার এবং মেথডের সাথে ম্যাপ করতে কাস্টম রাউট ব্যবহার করুন।

কাস্টম রাউট উদাহরণ:

$routes->get('about', 'Pages::about'); // 'about' URL-এ 'Pages' কন্ট্রোলারের 'about' মেথড

ব্রাউজারে অ্যাক্সেস:

http://localhost/your_project/about

৩. ডাইনামিক রাউট

ডাইনামিক রাউট ব্যবহার করে URL এর ভেরিয়েবল অংশ ধরতে পারেন।

ডাইনামিক রাউট উদাহরণ:

$routes->get('product/(:num)', 'Product::details/$1'); // URL-এ সংখ্যাকে ক্যাপচার করে
  • (:num): শুধুমাত্র সংখ্যা গ্রহণ করবে।
  • (:any): যে কোনো অক্ষর বা সংখ্যা গ্রহণ করবে।

ব্রাউজারে অ্যাক্সেস:

http://localhost/your_project/product/123

৪. RESTful রাউট

RESTful API তৈরি করতে CodeIgniter এ resource রাউট ব্যবহার করা হয়।

RESTful রাউট উদাহরণ:

$routes->resource('products');

এটি স্বয়ংক্রিয়ভাবে নিম্নলিখিত রাউট তৈরি করে:

  • GET /products → সমস্ত প্রোডাক্ট লিস্ট
  • POST /products → নতুন প্রোডাক্ট যোগ
  • GET /products/1 → ID 1 এর প্রোডাক্ট ডিটেইলস
  • PUT /products/1 → ID 1 এর প্রোডাক্ট আপডেট
  • DELETE /products/1 → ID 1 এর প্রোডাক্ট ডিলিট

রাউটিং প্যারামিটার এবং রুলস

প্যারামিটার ব্যবহার

আপনার URL থেকে প্যারামিটার ক্যাপচার করতে পারেন।

$routes->get('blog/(:any)/(:num)', 'Blog::post/$1/$2');

ব্রাউজারে অ্যাক্সেস:

http://localhost/your_project/blog/title/123
  • $1title
  • $2123

রুলস ব্যবহার

প্যারামিটারের জন্য নিয়ম নির্ধারণ করতে পারেন।

$routes->get('user/(:alpha)', 'User::profile/$1'); // শুধুমাত্র অক্ষর গ্রহণ করবে

Middleware এবং Filters সহ Routes

Routes এর সাথে Middleware বা Filter ব্যবহার করে নির্দিষ্ট পৃষ্ঠা সুরক্ষিত করতে পারেন।

Middleware উদাহরণ:

$routes->get('dashboard', 'Dashboard::index', ['filter' => 'auth']);

এটি নিশ্চিত করে যে auth ফিল্টার চেক করা হবে এবং শুধুমাত্র অথরাইজড ব্যবহারকারীরাই dashboard অ্যাক্সেস করতে পারবে।


Routes এর অগ্রাধিকার

Routes চেক করার সময় সর্বাধিক নির্দিষ্ট রাউট সর্বপ্রথম কার্যকর হয়। তাই ডাইনামিক রাউটগুলোর আগে কাস্টম রাউট নির্ধারণ করা উচিত।

উদাহরণ:

$routes->get('blog/popular', 'Blog::popular'); // নির্দিষ্ট রাউট
$routes->get('blog/(:any)', 'Blog::post/$1'); // ডাইনামিক রাউট

Common Errors এবং সমাধান

404 Not Found

  • সমাধান: রাউট সঠিকভাবে সংজ্ঞায়িত হয়েছে কিনা নিশ্চিত করুন।

Middleware Error

  • সমাধান: নিশ্চিত করুন যে সংশ্লিষ্ট Middleware ফাইলটি সঠিকভাবে সংযুক্ত রয়েছে।

Routes CodeIgniter এ URL গুলোকে সুসংগঠিত ও কার্যকরভাবে পরিচালনা করতে সাহায্য করে। সঠিকভাবে রাউট কনফিগার করলে অ্যাপ্লিকেশন দ্রুত এবং সুরক্ষিতভাবে কাজ করবে।

Content added By
Promotion